home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1989-06-10 | 37.2 KB | 1,010 lines
2 ' This programme is used to design MULTI SPANS CONTIUOUS RIBS 3 ' This programme uses Advanced Basic Language (IBM - BASICA ) 4 ' This programme is saved under the name [ CONTRIBS ] 5 ' Prepared by AMJAD J. SHAIR 15/1/1986 - 22/1/1986 6 WIDTH 40 :COLOR 15,1,0 :CLS :LOCATE 5 7 PRINT " MULTI SPANS CONTINUOUS RIBS DESIGN Pepared by : AMJAD JAMIL EL-SHA'IR " 8 LOCATE 25,5 :PRINT "PRESS SPACE BAR TO CONTINUE "; 9 Y$=INKEY$ :IF Y$<>" " THEN 9 10 '--------------------------------------------------------------- Basic Data 20 WIDTH 80 :COLOR 15,1,0 30 CLEAR 40 OPEN "DATA1" FOR INPUT AS #1 50 IF EOF(1) THEN CLOSE :GOTO 110 60 INPUT #1,PRJ$,BLD$,DSR$,FC,FY,FYS,QA 70 GOTO 50 100 '---------------------------------------------------------- Ribs Dimensions 110 WIDTH 80 :COLOR 15,1,0 :CLS :LOCATE 2 112 PRINT " ****************************************************" 114 PRINT " * C O N T I N U O U S R I B D E S I G N *" 116 PRINT " ****************************************************" 118 PRINT " ******* RIBBED SLAB SYSTEMS MENU *******" 120 PRINT " ****************************************************" 122 PRINT :PRINT 124 PRINT " [ O ] - ONE WAY RIBBED SLAB SYSTEM " 126 PRINT 128 PRINT " [ T ] - TWO WAY RIBBED SLAB SYSTEM " 130 PRINT 132 PRINT " [ R ] - RETURN TO RCDESIGN MAIN MENU " 134 PRINT 136 PRINT " ENTER THE CHOSEN SYSTEM INITIALS SHOWN IN BRACKETS :"; 138 RSC$=INKEY$ :IF RSC$<>"O" AND RSC$<>"o" AND RSC$<>"T" AND RSC$<>"t" AND RSC$<>"R" AND RSC$<>"r" THEN 138 140 IF RSC$="O" OR RSC$="o" THEN PRINT " ONE WAY RIBS " 142 IF RSC$="T" OR RSC$="t" THEN PRINT " TWO WAY RIBS " 144 IF RSC$="R" OR RSC$="r" THEN PRINT " RCDESIGN MENU" :CHAIN "RCDESIGN",2500 146 PRINT 148 INPUT " ENTER RIB NUMBER : R ",NMB 150 PRINT 155 INPUT " ENTER RIB TYPE NUMBER : ",TNR 160 IF TNR <=0 GOTO 155 165 IF RSC$="O" OR RSC$="o" THEN ON TNR GOTO 175,195,215 170 IF RSC$="T" OR RSC$="t" THEN ON TNR GOTO 240,260,280 175 OPEN "OWRL1" FOR INPUT AS #1 180 IF EOF(1) THEN CLOSE :GOTO 310 185 INPUT #1,BR,HR,HB,TT,PW,LL,WU 190 GOTO 180 195 OPEN "OWRL2" FOR INPUT AS #1 200 IF EOF(1) THEN CLOSE :GOTO 310 205 INPUT #1,BR,HR,HB,TT,PW,LL,WU 210 GOTO 200 215 OPEN "OWRL3" FOR INPUT AS #1 220 IF EOF(1) THEN CLOSE :GOTO 310 225 INPUT #1,BR,HR,HB,TT,PW,LL,WU 230 GOTO 220 240 OPEN "TWRL1" FOR INPUT AS #1 245 IF EOF(1) THEN CLOSE :GOTO 310 250 INPUT #1,BR,HR,HB,TT,PW,LL,WU 255 GOTO 245 260 OPEN "TWRL2" FOR INPUT AS #1 265 IF EOF(1) THEN CLOSE :GOTO 310 270 INPUT #1,BR,HR,HB,TT,PW,LL,WU 275 GOTO 265 280 OPEN "TWRL3" FOR INPUT AS #1 285 IF EOF(1) THEN CLOSE :GOTO 310 290 INPUT #1,BR,HR,HB,TT,PW,LL,WU 295 GOTO 285 310 D=HR-4 :B=BR :TF=HR-HB 'Effective depth ,Width,&Flange Thickness of Rib 320 GOSUB 3000 ' To find Section Stresses and Reinforcement Limitations 400 '------------------------------------------ Enter Cantilevers Spans & Loads 410 CLS :LOCATE 2,3 :COLOR 15,5 420 PRINT " **** MULTI SPAN RIB DESIGN - RIB : R"NMB " ****"TAB(79)"" 430 PRINT 440 LOCATE ,3 :PRINT " Concrete Crushing Strength f'c ="FC" kg/cm2 "TAB(79)"" 450 LOCATE ,3 :PRINT " Reinf' Steel Yield Stress fy ="FY" kg/cm2 "TAB(79)"" 460 PRINT 470 LOCATE ,3 :PRINT " Rib Dimensions : b (width)="BR" cm , h (thickness)="HR" cm"TAB(79)"" 480 COLOR 15,1 :PRINT 490 LL=0 :WL=0 :FL=0 :MLC=0 :RLC=0 500 LR=0 :WR=0 :FR=0 :MRC=0 :RRC=0 510 PRINT " DO YOU HAVE A CANTILEVER AT THE LEFT END SUPPORT (Y/N) ? "; 515 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 515 520 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 530 525 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 750 530 PRINT 540 INPUT " ENTER SPAN LENGTH OF LEFT CANTILEVER L (m) ", LL 550 IF LL>0 GOTO 600 560 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 570 INPUT " **** INVALID ZERO SPAN LENGTH RE-ENTER L **** ",LL 580 COLOR ,1:PRINT 590 IF LL<=0 GOTO 670 600 INPUT " ENTER ULTIMATE UNIFORM LOAD INTENSITY W (ton/m) ", WL 610 IF WL>0 GOTO 700 620 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 630 INPUT " **** INVALID ZERO UNIFORM LOAD RE-ENTER W **** ",WL 640 COLOR ,1:PRINT 650 IF WL>0 GOTO 700 660 LL=0 670 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 680 PRINT " **** CANTILEVER AT LEFT END WILL BE NEGLECED **** " 690 COLOR ,1:PRINT :GOTO 750 700 INPUT " ENTER PARAPET COCENTRATED LOAD (if any) F (ton) ", FL 710 IF FL <= 0 GOTO 730 720 INPUT " ENTER DISTANCE OF COCENT. LOAD FROM EDGE (m) ", XFL 730 MLC=-(WL*LL^2/2+FL*(LL-XFL)) 740 RLC=WL*LL+FL 750 PRINT :PRINT " --------------------------------------------------------------------- " :PRINT 760 PRINT " DO YOU HAVE A CANTILEVER AT THE RIGHT END SUPPORT (Y/N) ? "; 765 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 765 770 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 780 775 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 1000 780 PRINT 790 INPUT " ENTER SPAN LENGTH OF RIGHT CANTILEVER L (m) ", LR 800 IF LR>0 GOTO 850 810 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 820 INPUT " **** INVALED ZERO SPAN LENGTH RE-ENTER L **** ",LR 830 COLOR ,1:PRINT 840 IF LR<=0 GOTO 920 850 INPUT " ENTER ULTIMATE UNIFORM LOAD INTENSITY W (ton/m) ", WR 860 IF WR>0 GOTO 950 870 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 880 INPUT " **** INVALED ZERO UNIFORM LOAD RE-ENTER W **** ",WR 890 COLOR ,1:PRINT 900 IF WR>0 GOTO 950 910 LR=0 920 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 930 PRINT " **** CANTILEVER AT LEFT END WILL BE NEGLECED **** " 940 COLOR ,1:PRINT :GOTO 1000 950 INPUT " ENTER PARAPET COCENTRATED LOAD (if any) F (ton) ", FR 960 IF FR <= 0 GOTO 980 970 INPUT " ENTER DISTANCE OF COCENT. LOAD FROM EDGE (m) ", XFR 980 MRC=WR*LR^2/2+FR*(LR-XFR) 990 RRC=WR*LR+FR 1000 '------------------------------------------------- Enter Rib Spans & Loads 1010 GOSUB 3400 'To display heading and data 1020 INPUT " ENTER NUMBER OF SPANS OF THE RIB (1 TO 7) ",N 1030 IF N>=1 AND N<=7 GOTO 1090 1040 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 1050 INPUT " **** INVALID NUMBER OF SRANS RE-ENTER N **** ",N 1060 COLOR ,1:PRINT 1070 IF (N<1) OR (N>7) THEN GOSUB 3300 ELSE GOTO 1090 1080 IF Y$="Y" GOTO 1000 ELSE GOTO 2800 1090 PRINT 1100 FOR I=1 TO N 1110 L(I)=0 :W(I)=0 :RL(I)=0 :RR(I)=0 :MFL(I)=0 :MFR(I)=0 :MNL(I)=0 :MNR(I)=0 :MP(I)=0 1120 NEXT 1130 FOR I= 1 TO N 1140 PRINT " ** SPAN"I" ** " 1150 PRINT " ---------------" 1160 INPUT " ENTER SPAN LENGTH L (m) ",L(I) 1170 IF L(I)>0 GOTO 1230 1180 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 1190 INPUT " **** INVALED ZERO SPAN LENGTH RE-ENTER L **** ",L(I) 1200 COLOR ,1:PRINT 1210 IF L(I)<=0 THEN GOSUB 3300 ELSE GOTO 1230 1220 IF Y$="Y" GOTO 1000 ELSE GOTO 2800 1230 INPUT " ENTER ULTIMATE UNIFORM LOAD INTENSITY W (ton/m) ",W(I) 1240 IF W(I)>0 GOTO 1300 1250 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 1260 INPUT " **** INVALED ZERO UNIFORM LOAD RE-ENTER W **** ",W(I) 1270 COLOR ,1:PRINT 1280 IF W(I)<=0 THEN GOSUB 3300 ELSE GOTO 1300 1290 IF Y$="Y" GOTO 1000 ELSE GOTO 2800 1300 PRINT 1310 NEXT 1400 '-------------------------------------- Calculation of Moments & Reactions 1405 PRINT :PRINT :PRINT :LOCATE ,20 :COLOR 31,0 1410 PRINT " *** P L E A S E W A I T *** " 1415 COLOR 15,1 :PRINT 1420 GOSUB 3500 'To Calculate Negative Moments by Moment Distribution 1425 GOSUB 3900 'To Calculate Reactions, Positive Mom., and Cut off Points 1430 GOSUB 4000 ' Round up Structural Analysis Output 1435 GOSUB 3440 ' Display Heading & Basic Data 1440 ON N GOSUB 5000,6000,7000 ' Display Data & Srtuctural Analysis 1445 IF N>=4 THEN GOSUB 8000 1450 IF N=1 GOTO 1585 1455 COLOR 15,5 1460 INPUT " ENTER THE PERCENTAGE (%) OF REDUCTION ON NEGATIVE MOMENT (if required ) Enter Cr for no reduction required ",RDC 1465 COLOR 15,1 1470 IF RDC<=0 THEN RDC=0 :GOTO 1580 1475 IF RDC<=15 GOTO 1505 ELSE RDC=0 1480 PRINT :LOCATE ,10 :COLOR ,4 :BEEP 1485 PRINT " it is not advisable to apply more than 15 % reduction for M -ve " 1490 PRINT " *** Press SPACE BAR to continue *** "; 1495 Y$=INKEY$ :IF Y$<>" " THEN 1495 1500 IF Y$=" " THEN COLOR ,1 :PRINT :GOTO 1435 1505 FOR I=1 TO N 1510 IF I=1 AND LL>0 GOTO 1520 1515 MNL(I)=MNL(I)*(1-RDC/100) 1520 IF I=N AND LR>0 GOTO 1530 1525 MNR(I)=MNR(I)*(1-RDC/100) 1530 NEXT 1535 GOSUB 3900 'To Calculate Reactions, Positive Mom., and Cut off Points 1540 GOSUB 4000 ' Round up Structural Analysis Output 1545 GOSUB 3470 ' Display Heading & Basic Data 1550 ON N GOSUB 5000,6000,7000 ' Display Data & Srtuctural Analysis 1555 IF N>=4 THEN GOSUB 8000 1560 PRINT " DO YOU WANT TO CHANGE THE PERCENTAGE OF REDUCTION (Y/N) ? "; 1565 Y$=INKEY$ :IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1565 1570 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :RDC=0 :GOTO 1400 1575 IF Y$="N" OR Y$="n" THEN PRINT " NO " 1580 PRINT :COLOR 15,1 1585 PRINT " *** PRESS Space Bar TO DISPLAY THE REINF' DETAILS ***"; 1590 Y$=INKEY$ :IF Y$<>" " THEN 1590 1600 '------------------------------------------ Calculation of Negative Reinf' 1610 FOR I= 1 TO N+1 1615 IF I>1 GOTO 1640 1620 MU=MNL(1) 1625 IF MU>MU(MAX.) GOTO 1700 1630 IF MU<(W(1)*L(1)^2/24) THEN MU=W(1)*L(1)^2/24 1635 GOTO 1660 1640 MU=-MNR(I-1) 1645 IF MU>MU(MAX.) GOTO 1700 1650 IF I=N+1 AND MU<(W(N)*L(N)^2/24) THEN MU=W(N)*L(N)^2/24 1660 GOSUB 4300 ' To find As 1670 IF AS<AS(MIN.) THEN AS=AS(MIN.) 1680 ASN(I)=AS :CBSL(I)=0 :CBSR(I)=0 1690 GOTO 1800 1700 B=BR+40 1710 GOSUB 4300 1720 IF AC<TF GOTO 1732 1730 GOSUB 4400 :GOTO 2700 1732 IF I>1 GOTO 1740 1734 IF LL<=0 THEN CBSL(1)=0 :GOTO 1760 1736 CBSL(1)=LL-(-FL+SQR(FL^2+2*WL*(MU(MAX.)+FL*XFL)))/WL :GOTO 1760 1740 IF RR(I-1)^2<(2*W(I-1)*(MU-MU(MAX.))) THEN CBSL(I)=0 :GOTO 1790 1750 CBSL(I)=(RR(I-1)-SQR(RR(I-1)^2-2*W(I-1)*(MU-MU(MAX.))))/W(I-1) 'Min. Width of concrete Beam to be provided on the left side of the support to allow for full width concrete section b =br+40 1752 IF I<N+1 GOTO 1760 1754 IF LR<=0 THEN CBSR(N+1)=0 :GOTO 1780 1756 CBSR(N+1)=LR-(-FR+SQR(FR^2+2*WR*(MU(MAX.)+FR*XFR)))/WR :GOTO 1780 1760 IF RL(I)^2<(2*W(I)*(MU-MU(MAX.))) THEN CBSR(I)=0 :GOTO 1790 1770 CBSR(I)=(RL(I)-SQR(RL(I)^2-2*W(I)*(MU-MU(MAX.))))/W(I) 'Min. Width of concrete Beam to be provided on the right side of the support to allow for full width concrete section b =br+40 1780 IF CBSL(I)>=CBSR(I) THEN CBS(I)=2*CBSL(I) ELSE CBS(I)=2*CBSR(I) 'Min. Width of concrete Beam to be provided at support half each side to allow for full width concrete section b =br+40 1790 ASN(I)=AS :ACN(I)=AC 1800 DIAN(I)=2+2*INT(SQR(4*100*AS*0.95/(3.14159*2))/2) 'Bar diameter to be used 1810 IF DIAN(I)<10 THEN DIAN(I)=10 1812 IF DIAN(I)<24 GOTO 1820 1815 DIAN(I)=25 1820 ASPN(I)=2*3.14159*(DIAN(I)/10)^2/4 'As provided for Negative Reinf' 1830 NEXT 1900 '------------------------------------------ Calculation of Positive Reinf' 1910 FOR I= 1 TO N 1920 MU=MP(I) 1930 IF MU<(W(I)*L(I)^2/16) THEN MU=W(I)*L(I)^2/16 1940 IF MU>MU(MAX.) GOTO 1990 1950 GOSUB 4300 ' To find As 1960 ASP(I)=AS 1970 IF AS<AS(MIN.) THEN AS=AS(MIN.) 1980 GOTO 2080 1990 B=BR+40 2000 GOSUB 4300 2010 IF AC<TF GOTO 2070 2020 LOCATE ,5 :COLOR ,4 :BEEP 2030 PRINT " *** THIS RIB SECTION IS NOT ADEQUATE FOR THE GIVEN SPAN & LOADING *** *** CHANGE RIB SECTION DIMENTIONS *** " 2040 COLOR ,1 :PRINT :GOTO 2700 2070 ASP(I)=AS :ACP(I)=AC 2080 DIAP(I)=2+2*INT(SQR(4*100*AS*0.95/(3.14159*2))/2) 'Bar diameter to be used 2090 IF DIAP(I)<10 THEN DIAP(I)=10 2092 IF DIAP(I)<24 GOTO 2100 2095 DIAP(I)=25 2100 ASPP(I)=2*3.14159*(DIAP(I)/10)^2/4 'As provided for posit. reinf' 2110 NEXT 2200 '---------------------------------------------------Display data & Results 2210 GOSUB 4200 2220 GOSUB 3400 2230 ON N GOSUB 5600,6600,7600 2240 IF N>=4 THEN GOSUB 8600 2300 '-----------------------------------------------------Print Data & Results 2305 PRINT " *** DO YOU WANT THIS RIB DESIGN TO BE PRINTED (Y/N) ? ***"; 2310 Y$=INKEY$ :IF Y$="" THEN 2310 2315 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 2330 2320 IF Y$="N" OR Y$="n" THEN PRINT " NO " :GOTO 2700 2325 GOTO 2300 2330 H$=STRING$(79,61) 2332 LPRINT 2335 LPRINT CHR$(14)"Arabian Consulting Engineering Services" 2340 LPRINT "P. O. Box 146 Riyadh - Saudi Arabia" 2345 LPRINT H$ 2350 LPRINT CHR$(14)" PROJECT: "PRJ$ 2355 LPRINT 2360 LPRINT " BUILDING : "BLD$ TAB(58)"PAGE No.:" 2365 LPRINT " DESIGNED BY : "DSR$ TAB(31)"/ CHECKED BY : "TAB(58)"DATE : "DATE$ 2370 LPRINT :LPRINT H$ 2375 LPRINT " RCDESIGN PROGRAM PREPARED BY : Amjad J.El-Sha'ir, P.O.Box 926447 Amman-Jordan" 2380 LPRINT " THIS COPY TO BE USED ONLY BY : Arabian Consulting Engineering Services K.S.A" 2385 LPRINT H$ 2390 LPRINT CHR$(14) " MULTI SPAN RIBS "TAB(32)"RIB: R"NMB 2400 LPRINT H$ :LPRINT 2410 LPRINT CHR$(27)"G"; 2420 LPRINT " ** CONCRETE & STEEL PROPERTIES ** " 2430 LPRINT CHR$(27)"H";" --------------------------------- " 2440 LPRINT " - Concrete Crushing Strength f'c ="FC" kg/cm2 " 2450 LPRINT " - Reinf' Steel Yield Stress fy ="FY" kg/cm2 " 2460 LPRINT CHR$(27)"G" 2470 LPRINT " ** RIB SECTION DIMENSIONS ** " 2480 LPRINT CHR$(27)"H";" ---------------------------- " 2490 LPRINT " - Width b = "BR" cm" TAB(40) " - Flange Thickness tf = "TF" cm " 2500 LPRINT " - Height h = "HR" cm" TAB(40) " - Effective Depth d = "D" cm " 2510 LPRINT H$ 2520 LPRINT " Max. Sect. Capacity Ku ="KU(MAX.) TAB(40) " Max. Moment Capacity Mu ="MU(MAX.)" t.m" 2530 LPRINT " Min. Steel Ratio Ps ="PS(MIN.) TAB(40) " Max. Steel Ratio Ps ="PSX(MAX.) 2540 LPRINT " Min. Steel Area As ="AS(MIN.)" cm2" TAB(40) " Max. Steel Area As ="ASX(MAX.)" cm2" 2550 LPRINT H$ 2560 LPRINT :LPRINT 2570 ON N GOSUB 9000,10000,11000 2580 IF N>=4 THEN GOSUB 12000 2590 LPRINT CHR$(27) "H":LPRINT CHR$(12) 2700 '----------------------------------------------------Repeat for Other Ribs 2710 PRINT :PRINT " *** DO YOU HAVE OTHER RIBS TO DESIGN (Y/N) ? ***"; 2720 Y$=INKEY$ :IF Y$="" THEN 2720 2730 IF Y$="Y" OR Y$="y" THEN PRINT " YES" :GOTO 10 2740 IF Y$="N" OR Y$="n" THEN PRINT " NO " :PRINT :PRINT " [ YOU WILL BE SEND BACK TO THE RCDESIGN MAIN MENU ] " :CHAIN "RCDESIGN",2500 2750 GOTO 2700 2800 END '------------------------------------------------------End of Running 2900 '********************** SUBROUTINES ********************************** 3000 '----------------------------- SUBROUTINE : Section and Reinf' Limitations 3010 PSX(MAX.)=0.75*(4400/(FY+6090))*FC/FY ' Max. Ratio of Reinf' 3020 WC(MAX.)=PSX(MAX.)*FY/FC 3030 ASX(MAX.)=PSX(MAX.)*BR*D 3040 KU(MAX.)=0.9*FC*WC(MAX.)*(1-0.59*WC(MAX.)) 3050 AC(MAX.)=WC(MAX.)*D/0.85 'Depth of comp. Whitny Block 3060 CC(MAX.)= AC(MAX.)/0.85 'Depth of Nutral Axis 3070 JU(MAX.)=(1-0.59*WC(MAX.))*D 'Liver Arm 3080 MU(MAX.)=KU(MAX.)*BR*D^2/100000 'Max. Moment Capacity of Rib 3090 PS(MIN.)=13.99/FY 3100 AS(MIN.)=PS(MIN.)*BR*D 3110 PSX(MAX.)=(CINT(PSX(MAX.)*10000))/10000 3120 WC(MAX.)=(CINT(WC(MAX.)*100))/100 3130 ASX(MAX.)=(CINT(ASX(MAX.)*100))/100 3140 KU(MAX.)=(CINT(KU(MAX.)*100))/100 3150 AC(MAX.)=(CINT(AC(MAX.)*100))/100 3160 CC(MAX.)=(CINT(CC(MAX.)*100))/100 3170 JU(MAX.)=(CINT(JU(MAX.)*100))/100 3180 MU(MAX.)=(CINT(MU(MAX.)*100))/100 3190 PS(MIN.)=(CINT(PS(MIN.)*10000))/10000 3200 AS(MIN.)=(CINT(AS(MIN.)*100))/100 3210 RETURN 3300 '-------------------------------------------- SUBROUTINE : Invalid Entries 3310 PRINT :LOCATE ,7 :COLOR ,4 : BEEP 3320 PRINT " *** YOU WERE GIVEN TWO CHANCES TO ENTER BUT YOU FAILED *** " 3330 PRINT :COLOR ,4 :LOCATE ,7 3340 PRINT " *** ENTER Y TO REDO THIS RIB OR TO GO FOR OTHER RIBS *** " 3350 COLOR ,1 :PRINT 3360 GOTO 2700 3400 '---------------------------------------------- SUBROUTINE : Display Data 3405 CLS :LOCATE 2,3 :COLOR 15,5 3410 PRINT " **** MULTI SPAN RIB DESIGN - RIB : R"NMB " ****"TAB(79)"" 3415 PRINT 3420 LOCATE ,3 :PRINT " MATERIAL PROPERTIES : Conc. f'c ="FC"kg/cm2 * Steel fy ="FY"kg/cm2"TAB(79)"" 3425 LOCATE ,3 :PRINT " SECTION DIMENSIONS : Width b = "BR" cm * Thickness h ="HR" cm"TAB(79)"" 3430 COLOR 15,1 :PRINT 3435 RETURN 3440 '---------------------------------------------- SUBROUTINE : Display Data 3445 CLS :LOCATE 2,3 :COLOR 15,5 3450 PRINT " **** MULTI SPAN RIB DESIGN - RIB : R"NMB " ****"TAB(79)"" 3455 COLOR 15,1 :PRINT 3460 PRINT " FOR EXACT NEGATIVE MOMENTS " :PRINT 3465 RETURN 3470 '---------------------------------------------- SUBROUTINE : Display Data 3475 CLS :LOCATE 2,3 :COLOR 15,5 3480 PRINT " **** MULTI SPAN RIB DESIGN - RIB : R"NMB " ****"TAB(79)"" 3485 COLOR 15,1 :PRINT 3490 PRINT " FOR NEGATIVE MOMENTS REDUCED BY "RDC"%" :PRINT 3495 RETURN 3500 '----------- SUBROUTINE to find Negative Moments using Moment Distribution 3510 ' Distribution Factors 3520 DFL(1)=1 :DFR(N)=1 'Far End Supports are Hinges 3530 FOR I= 1 TO N-1 3540 DFR(I)=(1/L(I))/(1/L(I)+1/L(I+1)) 'Distribution Factor Left of Joint 3550 DFL(I+1)=1-DFR(I) 'Distribution Factor Right of Joint 3560 NEXT 3570 ' Fixed End Moments 3580 MFR(0)=MLC 3590 FOR I=1 TO N 3600 MFL(I)=W(I)*L(I)^2/12 3610 MFR(I)=-W(I)*L(I)^2/12 3620 NEXT 3630 MFL(N+1)=MRC 3640 FOR I= 1 TO N 3650 MBL(I,1)=-(MFR(I-1)+MFL(I))*DFL(I) 3660 MBR(I,1)=-(MFR(I)+MFL(I+1))*DFR(I) 3670 NEXT I 3680 FOR C=2 TO 6 'moment distribution will be repeated in 6 circles 3690 FOR I= 1 TO N 3700 MCL(I,C)=MBR(I,C-1)/2 3710 MCR(I,C)=MBL(I,C-1)/2 3720 NEXT I 3730 FOR I= 1 TO N 3740 MBL(I,C)=-(MCR(I-1,C)+MCL(I,C))*DFL(I) 3750 MBR(I,C)=-(MCR(I,C)+MCL(I+1,C))*DFR(I) 3760 NEXT I 3770 NEXT C 3780 FOR I= 1 TO N 3790 MNL(I)=MFL(I) 3800 FOR C= 1 TO 6 3810 MNL(I)=MNL(I)+MCL(I,C)+MBL(I,C) 3820 NEXT C 3830 NEXT I 3840 FOR I= 1 TO N 3850 MNR(I)=MFR(I) 3860 FOR C= 1 TO 6 3870 MNR(I)=MNR(I)+MCR(I,C)+MBR(I,C) 3880 NEXT C 3890 NEXT I 3895 RETURN 3900 '---- SUBROUTINE to Calculate Reactions, Positive Mom., and Cut off Points 3905 FOR I= 1 TO N 3910 RL(I)=W(I)*L(I)/2+(MNL(I)+MNR(I))/L(I) 3915 RR(I)=W(I)*L(I)/2-(MNL(I)+MNR(I))/L(I) 3920 IF (RL(I)<=0) OR (RR(I)<=0) GOTO 3950 3925 XL(I)=RL(I)/W(I) 3930 MP(I)=RL(I)*XL(I)-W(I)*XL(I)^2/2-MNL(I) 3935 IF MP(I)<=0 GOTO 3950 3940 XCL(I)=XL(I)-(SQR(8*MP(I)/W(I)))/2 3945 XCR(I)=L(I)-XCL(I)-SQR(8*MP(I)/W(I)) 3950 NEXT 3960 RETURN 4000 '----------------------- SUBROUTINE : Round up Structural Analysis Results 4010 FOR I= 1 TO N+1 4020 MLC=(CINT(MLC*100))/100 4030 RLC=(CINT(RLC*100))/100 4040 MRC=(CINT(MRC*100))/100 4050 RRC=(CINT(RRC*100))/100 4060 MNL(I)=(CINT(MNL(I)*100))/100 4070 MNR(I)=(CINT(MNR(I)*100))/100 4080 RL(I)=(CINT(RL(I)*100))/100 4090 RR(I)=(CINT(RR(I)*100))/100 4100 XL(I)=(CINT(XL(I)*100))/100 4110 MP(I)=(CINT(MP(I)*100))/100 4120 XCL(I)=(CINT(XCL(I)*100))/100 4130 XCR(I)=(CINT(XCR(I)*100))/100 4140 NEXT 4150 RETURN 4200 '----------------------- SUBROUTINE : Round up Reinf'. Calculation Results 4210 FOR I= 1 TO N+1 4220 CBS(I)=(CINT(CBS(I)*100))/100 4230 AC(I)=(CINT(AC(I)*100))/100 4240 ASN(I)=(CINT(ASN(I)*100))/100 4250 ASP(I)=(CINT(ASP(I)*100))/100 4260 ASPN(I)=(CINT(ASPN(I)*100))/100 4270 ASPP(I)=(CINT(ASPP(I)*100))/100 4280 NEXT 4290 RETURN 4300 '----------------------------- SUBROUTINE : Requierd AREA OF STEEL Reinf' 4310 WC=(1-SQR(1-2.36*MU*100000/(B*D^2*0.9*FC)))/1.18 4320 AC=(WC/0.85)*D 'depth of compression Whitny Block 4330 CC=AC/0.85 'depth of nutral axis 4340 PS=WC*FC/FY 'steel ratio 4350 AS=PS*B*D 'area of steel reinf' 4360 RETURN 4400 '--------------------------SUBROUTINE to stop execution for huge moments 4410 LOCATE ,5 :COLOR ,4 :BEEP 4420 PRINT " *** THIS RIB SECTION IS NOT ADEQUATE FOR THE GIVEN SPAN & LOADING *** *** CHANGE RIB SECTION DIMENTIONS *** " 4430 COLOR ,1 :PRINT 4440 RETURN 5000 '------- SUBROUTINE : Display Structural Analysis Results * ONE SPAN RIB 5010 LT=LL+L(1)+LR 5020 XXL=CINT(LL/LT*38) 5030 XX1=CINT(L(1)/LT*38) 5040 XXR=CINT(LR/LT*38) 5050 XXT=XXL+XX1+XXR+2 5060 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205) 5070 ZA=36+CINT(XXL/2)-3 5080 ZB=36+XXL 5090 ZC=ZB+CINT(XX1/2)-2 5100 ZD=ZB+XX1+1 5110 ZE=ZD+CINT(XXR/2)-2 5120 COLOR 0,7 5130 PRINT " JOINT NUMBER ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) "" 5140 PRINT " " TAB(36) AC$ TAB(80) "" 5150 PRINT " SPAN NUMBER ................"; 5160 IF LL<=0 GOTO 5180 5170 PRINT TAB(ZA)"L/C"; 5180 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$; 5190 IF LR<=0 GOTO 5210 5200 PRINT TAB(ZE) "R/C"; 5210 PRINT TAB(80)"" 5220 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)"" 5230 PRINT " SPAN LENGTH (m).........."; 5240 IF LL<=0 GOTO 5260 5250 PRINT TAB(ZA) LL; 5260 PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZD) AB$; 5270 IF LR<=0 GOTO 5290 5280 PRINT TAB(ZE) LR; 5290 PRINT TAB(80)"" 5300 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)"" 5310 PRINT " SPAN LOAD (t/m)........"; 5320 IF WL<=0 GOTO 5340 5330 PRINT TAB(ZA) WL; 5340 PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZD) AB$; 5350 IF WR<=0 GOTO 5370 5360 PRINT TAB(ZE) WR; 5370 PRINT TAB(80)"" 5380 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 5390 PRINT " NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)"" 5400 PRINT " " TAB(36) AA$ TAB(80) "" 5410 PRINT " SUPP. REACTIONS (t).........."; 5420 IF LL<=0 GOTO 5440 5430 PRINT TAB(ZB-6) RLC; 5440 PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZD-6) RR(1) TAB(ZD) AB$; 5450 IF LR<=0 GOTO 5470 5460 PRINT TAB(ZD+1) RRC; 5470 PRINT TAB(80)"" 5480 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)"" 5490 PRINT " Lft Dstc. of M+max(m)........"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZD) AB$ TAB(80)"" 5500 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)"" 5510 PRINT " POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)"" 5520 PRINT :COLOR 15,1 5530 RETURN 5600 '------- SUBROUTINE : Display Reinf'. Calculation Results * ONE SPAN RIB 5605 COLOR 0,7 5610 PRINT " JOINT NUMBER ................"TAB(ZB)"1" TAB(ZD)"2" TAB(80) "" 5615 PRINT " " TAB(36) AC$ TAB(80) "" 5620 PRINT " SPAN NUMBER ................"; 5625 IF LL<=0 GOTO 5635 5630 PRINT TAB(ZA)"L/C"; 5635 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZD) AB$; 5640 IF LR<=0 GOTO 5650 5645 PRINT TAB(ZE) "R/C"; 5650 PRINT TAB(80)"" 5655 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 5660 PRINT " NEGATIVE MOMENT (t.m)........"TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) TAB(80)"" 5670 PRINT " " TAB(36) AA$ TAB(80) "" 5680 PRINT " POSITIVE MOMENT (t.m)........"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZD) AB$ TAB(80)"" 5690 PRINT TAB(ZB) AB$ TAB(ZD) AB$ TAB(80)"" 5700 PRINT " CUT OFF POINTS (m).........." TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZD-6) XCR(1) TAB(ZD) AB$ TAB(80)"" 5710 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 5720 PRINT " As (req) TOP (cm2)........"TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2) TAB(80)"" 5730 PRINT " " TAB(36) AA$ TAB(80)"" 5740 PRINT " As (req) BOTTOM (cm2)........"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZD) AB$ TAB(80)"" 5750 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 5760 PRINT " REINF' - TOP ............."TAB(ZB-2) "2"CHR$(237);DIAN(1)"mm" TAB(ZD-5) "2"CHR$(237);DIAN(2)"mm" TAB(80)"" 5770 PRINT " " TAB(36) AA$ TAB(80) "" 5780 PRINT " REINF' - BOTTOM ............."TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZD) AB$ TAB(80)"" 5790 COLOR 15,1 :PRINT 5800 RETURN 6000 '------- SUBROUTINE : Display Structural Analysis Results * TWO SPANS RIB 6010 LT=LL+L(1)+L(2)+LR 6020 XXL=CINT(LL/LT*50) 6030 XX1=CINT(L(1)/LT*50) 6040 XX2=CINT(L(2)/LT*50) 6050 XXR=CINT(LR/LT*50) 6060 XXT=XXL+XX1+XX2+XXR+3 6070 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205) 6080 ZA=23+CINT(XXL/2)-3 6090 ZB=23+XXL 6100 ZC=ZB+CINT(XX1/2)-2 6110 ZF=ZB+XX1+1 6120 ZG=ZF+CINT(XX2/2)-2 6130 ZD=ZF+XX2+1 6140 ZE=ZD+CINT(XXR/2)-2 6150 COLOR 0,7 6160 PRINT " JOINT NUMBER ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) "" 6170 PRINT "" TAB(23) AC$ TAB(80) "" 6180 PRINT " SPAN NUMBER ....."; 6190 IF LL<=0 GOTO 6210 6200 PRINT TAB(ZA)"L/C"; 6210 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$; 6220 IF LR<=0 GOTO 6240 6230 PRINT TAB(ZE) "R/C"; 6240 PRINT TAB(80)"" 6250 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)"" 6260 PRINT " SPAN LENGTH (m) "; 6270 IF LL<=0 GOTO 6290 6280 PRINT TAB(ZA) LL; 6290 PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZF)AB$ TAB(ZG) L(2) TAB(ZD) AB$; 6300 IF LR<=0 GOTO 6320 6310 PRINT TAB(ZE) LR; 6320 PRINT TAB(80)"" 6330 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)"" 6340 PRINT " SPAN LOAD (t/m)"; 6350 IF WL<=0 GOTO 6370 6360 PRINT TAB(ZA) WL; 6370 PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZF)AB$ TAB(ZG) W(2) TAB(ZD) AB$; 6380 IF WR<=0 GOTO 6400 6390 PRINT TAB(ZE) WR; 6400 PRINT TAB(80)"" 6410 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 6420 PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)"" 6430 PRINT "" TAB(23) AA$ TAB(80) "" 6440 PRINT " SUPP.REACTIONS (t)"; 6450 IF LL<=0 GOTO 6470 6460 PRINT TAB(ZB-6) RLC; 6470 PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF)AB$ TAB(ZF+1) RL(2) TAB(ZD-6) RR(2) TAB(ZD) AB$; 6480 IF LR<=0 GOTO 6500 6490 PRINT TAB(ZD+1) RRC; 6500 PRINT TAB(80)"" 6510 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)"" 6520 PRINT " Lft Dst.of M+mx(m)"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZF) AB$ TAB(ZG) XL(2) TAB(ZD) AB$ TAB(80)"" 6530 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)"" 6540 PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)"" 6550 PRINT :COLOR 15,1 6560 RETURN 6600 '------- SUBROUTINE : Display Reinf'. Calculation Results * TWO SPANS RIB 6605 COLOR 0,7 6610 PRINT " JOINT NUMBER ....."TAB(ZB)"1" TAB(ZF)"2" TAB(ZD)"3" TAB(80) "" 6615 PRINT "" TAB(23) AC$ TAB(80) "" 6620 PRINT " SPAN NUMBER ....."; 6625 IF LL<=0 GOTO 6640 6630 PRINT TAB(ZA)"L/C"; 6640 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZG) "SPAN 2" TAB(ZD)AB$; 6650 IF LR<=0 GOTO 6670 6660 PRINT TAB(ZE) "R/C"; 6670 PRINT TAB(80)"" 6680 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 6690 PRINT " NEGT. MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) TAB(80)"" 6700 PRINT "" TAB(23) AA$ TAB(80) "" 6710 PRINT " POST. MOMENT (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZG) MP(2) TAB(ZD) AB$ TAB(80)"" 6720 PRINT TAB(ZB) AB$ TAB(ZF) AB$ TAB(ZD) AB$ TAB(80)"" 6730 PRINT " CUT OFF POINTS (m)" TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF)AB$ TAB(ZF+1) XCL(2) TAB(ZD-6) XCR(2) TAB(ZD) AB$ TAB(80)"" 6740 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 6750 PRINT " As (req) TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3) TAB(80)"" 6760 PRINT "" TAB(23) AA$ TAB(80)"" 6770 PRINT " As (req)BOTT (cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZG) ASP(2) TAB(ZD) AB$ TAB(80)"" 6780 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 6790 PRINT " REINF' - TOP "TAB(ZB-2) "2"CHR$(237);DIAN(1)"mm" TAB(ZF-2) "2"CHR$(237);DIAN(2)"mm" TAB(ZD-5) "2"CHR$(237);DIAN(3)"mm" TAB(80)"" 6800 PRINT "" TAB(23) AA$ TAB(80) "" 6810 PRINT " REINF' - BOTTOM "TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZG) "2"CHR$(237);DIAP(2)"mm" TAB(ZD) AB$ TAB(80)"" 6820 COLOR 15,1 :PRINT 6830 RETURN 7000 '----- SUBROUTINE : Display Structural Analysis Results * THREE SPANS RIB 7010 LT=LL+L(1)+L(2)+L(3)+LR 7020 XXL=CINT(LL/LT*60) 7030 XX1=CINT(L(1)/LT*60) 7040 XX2=CINT(L(2)/LT*60) 7050 XX3=CINT(L(3)/LT*60) 7060 XXR=CINT(LR/LT*60) 7070 XXT=XXL+XX1+XX2+XX3+XXR+4 7080 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205) 7090 ZA=12+CINT(XXL/2)-3 7100 ZB=12+XXL 7110 ZC=ZB+CINT(XX1/2)-2 7120 ZF=ZB+XX1+1 7130 ZH=ZF+CINT(XX2/2)-2 7140 ZI=ZF+XX2+1 7150 ZG=ZI+CINT(XX3/2)-2 7160 ZD=ZI+XX3+1 7170 ZE=ZD+CINT(XXR/2)-2 7180 COLOR 0,7 7190 PRINT " JOINT No"TAB(ZB)"1" TAB(ZF)"2" TAB(ZI)"3" TAB(ZD)"4" TAB(80) "" 7200 PRINT "" TAB(12) AC$ TAB(80) "" 7210 PRINT " SPAN No."; 7220 IF LL<=0 GOTO 7240 7230 PRINT TAB(ZA)"L/C"; 7240 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZH) "SPAN 2" TAB(ZI) AB$ TAB(ZG) "SPAN 3" TAB(ZD)AB$; 7250 IF LR<=0 GOTO 7270 7260 PRINT TAB(ZE) "R/C"; 7270 PRINT TAB(80)"" 7280 PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)"" 7290 PRINT " L (m)"; 7300 IF LL<=0 GOTO 7320 7310 PRINT TAB(ZA) LL; 7320 PRINT TAB(ZB)AB$ TAB(ZC) L(1) TAB(ZF)AB$ TAB(ZH) L(2) TAB(ZI) AB$ TAB(ZG) L(3) TAB(ZD) AB$; 7330 IF LR<=0 GOTO 7350 7340 PRINT TAB(ZE) LR; 7350 PRINT TAB(80)"" 7360 PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)"" 7370 PRINT " W (t/m)"; 7380 IF WL<=0 GOTO 7400 7390 PRINT TAB(ZA) WL; 7400 PRINT TAB(ZB)AB$ TAB(ZC) W(1) TAB(ZF)AB$ TAB(ZH) W(2) TAB(ZI) AB$ TAB(ZG) W(3) TAB(ZD) AB$; 7410 IF WR<=0 GOTO 7430 7420 PRINT TAB(ZE) WR; 7430 PRINT TAB(80)"" 7440 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 7450 PRINT " M- (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3) TAB(80)"" 7460 PRINT "" TAB(12) AA$ TAB(80) "" 7470 PRINT " R (t)"; 7480 IF LL<=0 GOTO 7500 7490 PRINT TAB(ZB-6) RLC; 7500 PRINT TAB(ZB) AB$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF)AB$ TAB(ZF+1) RL(2) TAB(ZI-6) RR(2) TAB(ZI) AB$ TAB(ZI+1) RL(3) TAB(ZD-6) RR(3) TAB(ZD) AB$; 7510 IF LR<=0 GOTO 7530 7520 PRINT TAB(ZD+1) RRC; 7530 PRINT TAB(80)"" 7540 PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)"" 7550 PRINT " X M+x(m)"TAB(ZB) AB$ TAB(ZC) XL(1) TAB(ZF) AB$ TAB(ZH) XL(2) TAB(ZI) AB$ TAB(ZG) XL(3) TAB(ZD) AB$ TAB(80)"" 7560 PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)"" 7570 PRINT " Mu+ (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZH) MP(2) TAB(ZI) AB$ TAB(ZG) MP(3) TAB(ZD) AB$ TAB(80)"" 7580 PRINT :COLOR 15,1 7590 RETURN 7600 '----- SUBROUTINE : Display Reinf'. Calculation Results * THREE SPANS RIB 7610 COLOR 0,7 7620 PRINT " JOINT No"TAB(ZB)"1" TAB(ZF)"2" TAB(ZI)"3" TAB(ZD)"4" TAB(80) "" 7630 PRINT "" TAB(12) AC$ TAB(80) "" 7640 PRINT " SPAN No."; 7650 IF LL<=0 GOTO 7670 7660 PRINT TAB(ZA)"L/C"; 7670 PRINT TAB(ZB)AB$ TAB(ZC) "SPAN 1" TAB(ZF)AB$ TAB(ZH) "SPAN 2" TAB(ZI) AB$ TAB(ZG) "SPAN 3" TAB(ZD)AB$; 7680 IF LR<=0 GOTO 7700 7690 PRINT TAB(ZE) "R/C"; 7700 PRINT TAB(80)"" 7710 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 7720 PRINT " M- (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3) TAB(80)"" 7730 PRINT "" TAB(12) AA$ TAB(80) "" 7740 PRINT " Mu+ (t.m)"TAB(ZB) AB$ TAB(ZC) MP(1) TAB(ZF) AB$ TAB(ZH) MP(2) TAB(ZI) AB$ TAB(ZG) MP(3) TAB(ZD) AB$ TAB(80)"" 7750 PRINT TAB(ZB)AB$ TAB(ZF)AB$ TAB(ZI) AB$ TAB(ZD)AB$ TAB(80)"" 7760 PRINT " CUT PT(m)" TAB(ZB) AB$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF)AB$ TAB(ZF+1) XCL(2) TAB(ZI-6) XCR(2) TAB(ZI) AB$ TAB(ZI+1) XCL(3) TAB(ZD-6) XCR(3) TAB(ZD) AB$ TAB(80)"" 7770 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 7780 PRINT " As-(cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZI-2) ASN(3) TAB(ZD-2) ASN(4) TAB(80)"" 7790 PRINT "" TAB(12) AA$ TAB(80)"" 7800 PRINT " As+(cm2)"TAB(ZB) AB$ TAB(ZC) ASP(1) TAB(ZF) AB$ TAB(ZH) ASP(2) TAB(ZI) AB$ TAB(ZG) ASP(3) TAB(ZD) AB$ TAB(80)"" 7810 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 7820 PRINT " RNF' TP "TAB(ZB-1) "2"CHR$(237);DIAN(1)"mm" TAB(ZF-3) "2"CHR$(237);DIAN(2)"mm" TAB(ZI-3) "2"CHR$(237);DIAN(3) "mm" TAB(ZD-5) "2"CHR$(237);DIAN(4)"mm" TAB(80)"" 7830 PRINT "" TAB(12) AA$ TAB(80) "" 7840 PRINT " RNF' BT "TAB(ZB) AB$ TAB(ZC) "2"CHR$(237);DIAP(1)"mm" TAB(ZF) AB$ TAB(ZH) "2"CHR$(237);DIAP(2)"mm" TAB(ZI) AB$ TAB(ZG) "2"CHR$(237);DIAP(3)"mm" TAB(ZD) AB$ TAB(80)"" 7850 COLOR 15,1 :PRINT 7860 RETURN 8000 '----- SUBROUTINE : Display Structural Analysis Results * 4 - 8 SPANS RIB 8010 IF N= 4 THEN XX1= 14 :XX= 57 8020 IF N= 5 THEN XX1= 11 :XX= 56 8030 IF N= 6 THEN XX1= 9 :XX= 55 8040 IF N= 7 THEN XX1= 8 :XX= 57 8050 IF LL<=0 AND LR<=0 THEN XXT=XX :ZA= 15 8060 IF LL<=0 AND LR>0 THEN XXT=XX+7 :ZA= 15 8070 IF LL>0 AND LR<=0 THEN XXT=XX+7 :ZA= 8 8080 IF LL>0 AND LR>0 THEN XXT=XX+14 :ZA= 8 8090 AA$=STRING$(XXT,196) :AB$=CHR$(221) :AC$=STRING$(XXT,205) 8100 COLOR 0,7 8110 PRINT " JOINT "; 8120 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) "" 8130 PRINT "" TAB(ZA) AC$ TAB(80) "" 8140 PRINT " SPAN No"; 8150 IF LL<=0 GOTO 8170 8160 PRINT TAB(11)"L/C"; 8170 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$; 8180 IF LR<=0 GOTO 8200 8190 PRINT TAB(16+XX-1) "R/C"; 8200 PRINT TAB(80)"" 8210 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) "" 8220 PRINT " L (m)"; 8230 IF LL<=0 GOTO 8250 8240 PRINT TAB(8) LL; 8250 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) L(I); :NEXT :PRINT TAB(16+XX-2) AB$; 8260 IF LR<=0 GOTO 8280 8270 PRINT TAB(16+XX-1) LR; 8280 PRINT TAB(80)"" 8290 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) "" 8300 PRINT " W t/m "; 8310 IF WL<=0 GOTO 8330 8320 PRINT TAB(8) WL; 8330 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) W(I); :NEXT :PRINT TAB(16+XX-2) AB$; 8340 IF WR<=0 GOTO 8360 8350 PRINT TAB(16+XX-1) WR; 8360 PRINT TAB(80)"" 8370 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 8380 PRINT " M- t.m" TAB(12) -MNL(1); 8390 FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) "" 8400 PRINT "" TAB(ZA) AA$ TAB(80) "" 8410 PRINT " R.Lft "; 8420 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) RL(I); :NEXT :PRINT TAB(16+XX-2) AB$; 8430 IF LR<=0 GOTO 8450 8440 PRINT TAB(16+XX-1) RRC; 8450 PRINT TAB(80)"" 8460 PRINT " R.Rgt "; 8470 IF LL<=0 GOTO 8490 8480 PRINT TAB(8) RLC; 8490 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) RR(I); :NEXT :PRINT TAB(16+XX-2) AB$; 8500 PRINT TAB(80)"" 8510 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) "" 8520 PRINT " XL- m "; 8530 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) XL(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8540 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) "" 8550 PRINT " M+ t.m"; 8560 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8570 PRINT :COLOR 15,1 8580 RETURN 8600 '----- SUBROUTINE : Display Reinf'. Calculation Results * 4 - 8 SPANS RIB 8605 COLOR 0,7 8610 PRINT " JOINT "; 8620 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-2) I; :NEXT :PRINT TAB(80) "" 8630 PRINT "" TAB(ZA) AC$ TAB(80) "" 8640 PRINT " SPAN No"; 8650 IF LL<=0 GOTO 8670 8660 PRINT TAB(11)"L/C"; 8670 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) "SPAN"I; :NEXT :PRINT TAB(16+XX-2) AB$; 8680 IF LR<=0 GOTO 8700 8690 PRINT TAB(16+XX-1) "R/C"; 8700 PRINT TAB(80)"" 8710 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 8720 PRINT " M- t.m" TAB(12) -MNL(1); 8730 FOR I= 1 TO N :PRINT TAB(16+I*XX1-4) MNR(I); :NEXT :PRINT TAB(80) "" 8740 PRINT "" TAB(ZA) AA$ TAB(80) "" 8750 PRINT " M+ t.m"; 8760 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8770 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-1) AB$; :NEXT :PRINT TAB(80) "" 8780 PRINT " CUT Pt.Lft"; 8790 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+(I-1)*XX1) XCL(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8800 PRINT " CUT Pt.Rgt"; 8810 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-8) XCR(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8820 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 8830 PRINT " As- cm2"; 8840 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT :PRINT TAB(80) "" 8850 PRINT "" TAB(ZA) AA$ TAB(80)"" 8860 PRINT " As+ cm2"; 8870 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8880 COLOR 15,3 :PRINT "" TAB(80)"" :COLOR 0,7 8890 PRINT " RNF' TP"; 8900 FOR I= 1 TO N+1 :PRINT TAB(16+(I-1)*XX1-3) "2" CHR$(237) DIAN(I); :NEXT :PRINT TAB(80) "" 8910 PRINT "" TAB(ZA) AA$ TAB(80) "" 8920 PRINT " RNF' BT "; 8930 FOR I= 1 TO N :PRINT TAB(16+(I-1)*XX1-1) AB$ TAB(16+I*XX1-INT(XX1/2)-3) "2" CHR$(237) DIAP(I); :NEXT :PRINT TAB(16+XX-2) AB$ TAB(80) "" 8940 COLOR 15,1 :PRINT 8950 RETURN 9000 '---------------------- SUBROUTINE : Print Data & Results * ONE SPAN RIB 9010 AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124) 9020 AX$=CHR$(43) :AN$=STRING$(5,45) 9030 IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84) 9040 LPRINT TAB(4)"SPAN LOAD ..(t/m)......"; 9050 IF WL<=0 GOTO 9070 9060 LPRINT TAB(ZA) WL; 9070 LPRINT TAB(ZC) W(1); 9080 IF WR<=0 GOTO 9100 9090 LPRINT TAB(ZE) WR 9100 LPRINT 9110 LPRINT TAB(36) AF$; 9120 LPRINT CHR$(27);"3";CHR$(12);TAB(36) AD$ 9125 LPRINT 9130 LPRINT TAB(ZB) AG$ TAB(ZD) AG$ 9140 LPRINT CHR$(27);"2" 9150 LPRINT TAB(4)"SPAN LENGTH ..(m)......"; 9160 IF LL<=0 GOTO 9180 9170 LPRINT TAB(36) AX$ TAB(ZA) LL; 9180 LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZD-5) AN$;AX$; 9190 IF LR<=0 GOTO 9210 9200 LPRINT TAB(ZE) LR TAB(36+XXT-1) AX$ 9210 LPRINT :LPRINT :LPRINT 9220 LPRINT TAB(4)"NEGATIVE MOMENT ..(t.m)....."TAB(ZB-2) -MNL(1) TAB(ZD-2) MNR(1) 9230 LPRINT TAB(36) AD$ 9240 LPRINT TAB(ZB) AG$ TAB(ZD) AG$ 9250 LPRINT TAB(4)"SUPP. REACTIONS ..(t)......"; 9260 IF LL<=0 GOTO 9280 9270 LPRINT TAB(ZB-6) RLC; 9280 LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZD-6) RR(1) TAB(ZD) AE$; 9290 IF LR<=0 GOTO 9310 9300 LPRINT TAB(ZD+1) RRC 9310 LPRINT TAB(ZB) AE$ TAB(ZD) AE$ 9320 LPRINT TAB(4)"Lft Dstc. of M+max..(m)....."TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZD) AE$ 9330 LPRINT TAB(ZB) AE$ TAB(ZD) AE$ 9340 LPRINT TAB(4)"POSITIVE MOMENT ..(t.m)....."TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZD) AE$ 9350 LPRINT TAB(ZB) AE$ TAB(ZD) AE$ 9360 LPRINT TAB(4)"CUT OFF POINTS ..(m)......." TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZD-6) XCR(1) TAB(ZD) AE$ 9370 LPRINT :LPRINT :LPRINT 9380 LPRINT TAB(4)"As (req) TOP ..(cm2)....."TAB(ZB-2) ASN(1) TAB(ZD-2) ASN(2) 9390 LPRINT TAB(36) AD$ 9400 LPRINT TAB(4)"As (req) BOTTOM ..(cm2)....."TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZD) AG$ 9410 LPRINT :LPRINT 9420 LPRINT TAB(4)"REINF' - TOP ............"TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZD-5) "2"BRDA$;DIAN(2)"mm" 9430 LPRINT TAB(36) AD$ 9440 LPRINT TAB(4)"REINF' - BOTTOM ............"TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZD) AG$ 9460 RETURN 10000 '-------------------- SUBROUTINE : Print Data & Results * TWO SPANS RIB 10010 AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124) 10020 AX$=CHR$(43) :AN$=STRING$(3,45) 10030 IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84) 10040 LPRINT TAB(2)"SPAN LOAD (t/m)"; 10050 IF WL<=0 GOTO 10070 10060 LPRINT TAB(ZA) WL; 10070 LPRINT TAB(ZC) W(1) TAB(ZG) W(2); 10080 IF WR<=0 GOTO 10100 10090 LPRINT TAB(ZE) WR 10100 LPRINT 10110 LPRINT TAB(23) AF$; 10120 LPRINT CHR$(27);"3";CHR$(12);TAB(23) AD$ 10125 LPRINT 10130 LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZD) AG$ 10140 LPRINT CHR$(27);"2" 10150 LPRINT TAB(2) "SPAN LENGTH (m)"; 10160 IF LL<=0 GOTO 10180 10170 LPRINT TAB(23) AX$ TAB(ZA) LL; 10180 LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZF-3) AN$;AX$;AN$ TAB(ZG) L(2) TAB(ZD-3) AN$;AX$; 10190 IF LR<=0 GOTO 10210 10200 LPRINT TAB(ZE) LR TAB(ZD+XXR) AX$ 10210 LPRINT :LPRINT :LPRINT 10220 LPRINT TAB(2)"NGTV.MOMENT (t.m)"TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZD-2) MNR(2) 10222 IF RDC<=0 THEN LPRINT TAB(4) "(Exact values)"; :GOTO 10230 10225 LPRINT TAB(4) "(Redc.by"RDC"%)"; 10230 LPRINT TAB(23) AD$ 10240 LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZD) AG$ 10250 LPRINT TAB(2)"SUPP.REACTION (t)"; 10260 IF LL<=0 GOTO 10280 10270 LPRINT TAB(ZB-6) RLC; 10280 LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF) AE$ TAB(ZF+1) RL(2) TAB(ZD-6) RR(2) TAB(ZD) AE$; 10290 IF LR<=0 GOTO 10310 10300 LPRINT TAB(ZD+1) RRC 10310 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$ 10320 LPRINT TAB(2)"Lt Dst.of M+mx(m)"TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZF) AE$ TAB(ZG) XL(2) TAB(ZD) AE$ 10330 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$ 10340 LPRINT TAB(2)"PSTV.MOMENT (t.m)"TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZF) AE$ TAB(ZG) MP(2) TAB(ZD) AE$ 10350 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZD) AE$ 10360 LPRINT TAB(2)"CUTOFF POINTS (m)" TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF) AE$ TAB(ZF+1) XCL(2) TAB(ZD-6) XCR(2) TAB(ZD) AE$ 10370 LPRINT :LPRINT :LPRINT 10380 LPRINT TAB(2)"As (req)TOP (cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZD-2) ASN(3) 10390 LPRINT TAB(23) AD$ 10400 LPRINT TAB(2)"As (req)BOT (cm2)"TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZF) AG$ TAB(ZG) ASP(2) TAB(ZD) AG$ 10410 LPRINT :LPRINT 10420 LPRINT TAB(2)"REINF' - TOP "TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZF-2) "2"BRDA$;DIAN(2)"mm" TAB(ZD-5) "2"BRDA$;DIAN(3)"mm" 10430 LPRINT TAB(23) AD$ 10440 LPRINT TAB(2)"REINF' - BOTTOM "TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZF) AG$ TAB(ZG) "2"BRDA$;DIAP(2)"mm" TAB(ZD) AG$ 10460 RETURN 11000 '------------------ SUBROUTINE : Print Data & Results * THREE SPANS RIB 11010 AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124) 11020 AX$=CHR$(43) :AN$=STRING$(2,45) 11030 IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84) 11040 LPRINT TAB(2)"W (t/m)"; 11050 IF WL<=0 GOTO 11070 11060 LPRINT TAB(ZA) WL; 11070 LPRINT TAB(ZC) W(1) TAB(ZH) W(2) TAB(ZG) W(3); 11080 IF WR<=0 GOTO 11100 11090 LPRINT TAB(ZE) WR 11100 LPRINT 11110 LPRINT TAB(12) AF$; 11120 LPRINT CHR$(27);"3";CHR$(12);TAB(12) AD$ 11125 LPRINT 11130 LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZI) AG$ TAB(ZD) AG$ 11140 LPRINT CHR$(27);"2" 11150 LPRINT TAB(2)"L (m)"; 11160 IF LL<=0 GOTO 11180 11170 LPRINT TAB(ZA) LL; 11180 LPRINT TAB(ZB)AX$;AN$ TAB(ZC) L(1) TAB(ZF-2) AN$;AX$;AN$ TAB(ZH) L(2) TAB(ZI-2) AN$;AX$;AN$ TAB(ZG) L(3) TAB(ZD-2) AN$;AX$; 11190 IF LR<=0 GOTO 11210 11200 LPRINT TAB(ZE) LR 11210 LPRINT :LPRINT :LPRINT 11212 LPRINT TAB(1)"Mu- (t.m)"; 11214 IF RDC<=0 THEN LPRINT " (Exact values)"; :GOTO 11220 11216 LPRINT " (Reduced by"RDC"%)"; 11220 LPRINT TAB(ZB-2) -MNL(1) TAB(ZF-2) MNR(1) TAB(ZI-2) MNR(2) TAB(ZD-2) MNR(3) 11230 LPRINT TAB(12) AD$ 11240 LPRINT TAB(ZB) AG$ TAB(ZF) AG$ TAB(ZI) AG$ TAB(ZD) AG$ 11250 LPRINT TAB(2)"R (t)"; 11260 IF LL<=0 GOTO 11280 11270 LPRINT TAB(ZB-6) RLC; 11280 LPRINT TAB(ZB) AE$ TAB(ZB+1) RL(1) TAB(ZF-6) RR(1) TAB(ZF) AE$ TAB(ZF+1) RL(2) TAB(ZI-6) RR(2) TAB(ZI) AE$ TAB(ZI+1) RL(3) TAB(ZD-6) RR(3) TAB(ZD) AE$; 11290 IF LR<=0 GOTO 11310 11300 LPRINT TAB(ZD+1) RRC 11310 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$ 11320 LPRINT TAB(2)"X M+x(m)"TAB(ZB) AE$ TAB(ZC) XL(1) TAB(ZF) AE$ TAB(ZH) XL(2) TAB(ZI) AE$ TAB(ZG) XL(3) TAB(ZD) AE$ 11330 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$ 11340 LPRINT TAB(2)"Mu+ (t.m)"TAB(ZB) AE$ TAB(ZC) MP(1) TAB(ZF) AE$ TAB(ZH) MP(2) TAB(ZI) AE$ TAB(ZG) MP(3) TAB(ZD) AE$ 11350 LPRINT TAB(ZB) AE$ TAB(ZF) AE$ TAB(ZI) AE$ TAB(ZD) AE$ 11360 LPRINT TAB(2)"CUT Pt(m)" TAB(ZB) AE$ TAB(ZB+1) XCL(1) TAB(ZF-6) XCR(1) TAB(ZF) AE$ TAB(ZF+1) XCL(2) TAB(ZI-6) XCR(2) TAB(ZI) AE$ TAB(ZI+1) XCL(3) TAB(ZD-6) XCR(3) TAB(ZD) AE$ 11370 LPRINT :LPRINT :LPRINT 11380 LPRINT TAB(2)"As-(cm2)"TAB(ZB-2) ASN(1) TAB(ZF-2) ASN(2) TAB(ZI-2) ASN(3) TAB(ZD-2) ASN(4) 11390 LPRINT TAB(12) AD$ 11400 LPRINT TAB(2)"As+(cm2)"TAB(ZB) AG$ TAB(ZC) ASP(1) TAB(ZF) AG$ TAB(ZH) ASP(2) TAB(ZI) AG$ TAB(ZG) ASP(3) TAB(ZD) AG$ 11410 LPRINT :LPRINT 11420 LPRINT TAB(2)"RNF' TP "TAB(ZB-2) "2"BRDA$;DIAN(1)"mm" TAB(ZF-2) "2"BRDA$;DIAN(2)"mm" TAB(ZI-2) "2"BRDA$;DIAN(3)"mm" TAB(ZD-5) "2"BRDA$;DIAN(4)"mm" 11430 LPRINT TAB(12) AD$ 11440 LPRINT TAB(2)"RNF' BT "TAB(ZB) AG$ TAB(ZC) "2"BRDA$;DIAP(1)"mm" TAB(ZF) AG$ TAB(ZH) "2"BRDA$;DIAP(2)"mm" TAB(ZI) AG$ TAB(ZG) "2"BRDA$;DIAP(3)"mm" TAB(ZD) AG$ 11460 RETURN 12000 '-------------- SUBROUTINE : Print Data & Results * 4 - 8 SPANS RIB 12010 AD$=STRING$(XXT,95) :AE$=CHR$(124) :AF$=STRING$(XXT,84) :AG$=CHR$(65)+CHR$(8)+CHR$(124) 12020 AX$=CHR$(43) :AN$=STRING$(2,45) 12030 IF FY<=3000 THEN BRDA$=CHR$(239)+CHR$(8)+CHR$(47) ELSE BRDA$=CHR$(111)+CHR$(8)+CHR$(84) 12040 LPRINT TAB(1)"W (t/m)"; 12050 IF WL<=0 GOTO 12070 12060 LPRINT TAB(8) WL; 12070 FOR I= 1 TO N :LPRINT TAB(16+I*XX1-INT(XX1/2)-4) W(I); :NEXT 12080 IF WR<=0 GOTO 12100 12090 LPRINT TAB(16+XX-1) WR 12100 LPRINT 12110 LPRINT TAB(ZA) AF$; 12120 LPRINT CHR$(27);"3";CHR$(12);TAB(ZA) AD$ 12125 LPRINT 12130 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AG$; :NEXT 12140 LPRINT CHR$(27);"2" 12150 LPRINT TAB(1)"L (m)"; 12160 IF LL<=0 GOTO 12180 12170 LPRINT TAB(8) AX$ TAB(9) LL; 12180 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AX$ TAB(16+I*XX1-INT(XX1/2)-4) L(I); :NEXT :LPRINT TAB(16+XX-2) AX$; 12190 IF LR<=0 GOTO 12210 12200 LPRINT TAB(16+XX-1) LR TAB(ZA+XXT-1) AX$ 12210 LPRINT :LPRINT :LPRINT 12220 LPRINT TAB(1)"Mu- (t.m)"; 12222 IF RDC<=0 THEN LPRINT " (Exact values)"; :GOTO 12230 12225 LPRINT " (Reduced by"RDC"%)"; 12230 LPRINT TAB(12) -MNL(1); 12240 FOR I= 1 TO N :LPRINT TAB(16+I*XX1-4) MNR(I); :NEXT 12250 LPRINT TAB(ZA) AD$ 12260 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AG$; :NEXT 12270 LPRINT TAB(1)"R.Lft "; 12280 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+(I-1)*XX1) RL(I); :NEXT :LPRINT TAB(16+XX-2) AE$; 12290 IF LR<=0 GOTO 12310 12300 LPRINT TAB(16+XX-1) RRC 12310 LPRINT TAB(1)"R.Rgt "; 12320 IF LL<=0 GOTO 12340 12330 LPRINT TAB(8) RLC; 12340 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-8) RR(I); :NEXT :LPRINT TAB(16+XX-2) AE$ 12350 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT 12360 LPRINT TAB(1)"XL- m "; 12370 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-INT(XX1/2)-4) XL(I); :NEXT :LPRINT TAB(16+XX-2) AE$ 12380 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT 12390 LPRINT TAB(1)"M+ t.m"; 12400 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-INT(XX1/2)-4) MP(I); :NEXT :LPRINT TAB(16+XX-2) AE$ 12410 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-1) AE$; :NEXT 12420 LPRINT TAB(1)"CUT Pt.Lft"; 12430 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+(I-1)*XX1) XCL(I); :NEXT :LPRINT TAB(16+XX-2) AE$ 12440 LPRINT TAB(1)"CUT Pt.Rgt"; 12450 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AE$ TAB(16+I*XX1-8) XCR(I); :NEXT :LPRINT TAB(16+XX-2) AE$ 12460 LPRINT :LPRINT :LPRINT 12470 LPRINT TAB(1)"As- cm2"; 12480 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-4) ASN(I); :NEXT 12490 LPRINT TAB(ZA) AD$ 12500 LPRINT TAB(1)"As+ cm2"; 12510 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AG$ TAB(16+I*XX1-INT(XX1/2)-4) ASP(I); :NEXT :LPRINT TAB(16+XX-2) AG$ 12520 LPRINT :LPRINT 12530 LPRINT TAB(1)"RNF' TP"; 12540 FOR I= 1 TO N+1 :LPRINT TAB(16+(I-1)*XX1-3) "2"BRDA$;DIAN(I); :NEXT 12550 LPRINT TAB(ZA) AD$ 12560 LPRINT TAB(1)"RNF' BT "; 12570 FOR I= 1 TO N :LPRINT TAB(16+(I-1)*XX1-1) AG$ TAB(16+I*XX1-INT(XX1/2)-4) "2"BRDA$;DIAP(I); :NEXT :LPRINT TAB(16+XX-2) AG$ 12580 RETURN